Pewarisan Kelas numpy.ndarray adalah keputusan arsitektur tingkat tinggi yang digunakan untuk membuat struktur data khusus bidang yang mengemas metadata (seperti satuan, koordinat, atau laju pengambilan sampel) bersama data numerik mentah. Berbeda dengan kelas Python standar, objek NumPy sering dibuat tanpa memanggil __init__.
Triad Inisialisasi
Arsitek harus mempertimbangkan tiga jalur instansiasi yang berbeda di mana konstruktor standar dilampaui:
- Konstruksi Eksplisit: Menggunakan nama kelas (ditangani oleh
__new__). - Pemetaan Tampilan: Mereinterpretasi array yang sudah ada sebagai kelas turunan Anda.
- Baru-dari-templat: Membuat potongan atau salinan dari instance kelas turunan yang sudah ada.
Pemroses khusus __array_finalize__ pemroses adalah titik pertemuan di mana metadata diselaraskan di seluruh jalur ini.
Kerentanan Perilaku
Pewarisan kelas menciptakan keterikatan erat dengan C-API NumPy. Operasi yang mengembalikan skalar (misalnya, np.mean()) sering "melepas" identitas kelas turunan, kembali ke standar ndarray. Manajemen metadata oleh karena itu merupakan risiko terus-menerus kecuali ditangani secara cermat melalui transisi status.
isinstance(obj, np.ndarray). Jika tidak, Komposisi (mengelilingi array) lebih aman.